[Imprint][Data Privacy Statement][E-Mail]

Back to main index. View the specification. View theorem base summary, View theorem base listing, the used properties by spec, the dependency list, the symbol table,

Specification pcache-del-ops
enrich
   nat-div
, 
   pcache
with
   

   
   
   functions  evict : nat × pcache → pcache;
              truncate : nat × nat × pcache → pcache;
   
   
   variables  ino : nat;
              ino0 : nat;
              pageno : nat;
              size : nat;
              name : string;
   
   

   

   axioms evict-base :  ⊦ evict(n, ∅) = ∅;
          used for: s, ls;
          evict-rec-same : n = ino ⊦ evict(n, pcache[datakey(ino, pageno), pe]) = evict(n, pcache);
          used for: s, ls;
          evict-rec-other : n ≠ ino ⊦ evict(n, pcache[datakey(ino, pageno), pe]) = evict(n, pcache)[datakey(ino, pageno), pe];
          used for: s, ls;
          evict-rec-inode :  ⊦ evict(n, pcache[inodekey(ino), pe]) = evict(n, pcache);
          used for: s, ls;
          evict-rec-dentry :  ⊦ evict(n, pcache[dentrykey(ino, name), pe]) = evict(n, pcache);
          used for: s, ls;
          in-truncate :  ⊦ key ∈ truncate(ino, size, pcache) ↔ key.data? ∧ key ∈ pcache ∧ (key.part * VFS_PAGE_SIZE < size ∨ ino ≠ key.ino);
          used for: ls, s;
          at-truncate
          :  ⊦ key.data? ∧ key ∈ pcache ∧ (key.part * VFS_PAGE_SIZE < size ∨ ino ≠ key.ino) → truncate(ino, size, pcache)[key] = pcache[key];

   

   
end enrich